package com.zxl.register.base;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.nio.channels.AsynchronousSocketChannel;

/**
 * 服务实例信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ServiceInstance implements Serializable {

    /**
     * 提供的服务名称(全类限定名),多个服务由逗号分隔开.
     */
    private String provideServiceName;


    /**
     * 订阅的的服务名称(全类限定名),多个服务由逗号分隔开.
     */
    private String subscribeServiceName;


    /**
     * 地址 格式： 192.168.0.100:99
     */
    private String address;


    /**
     * 权重，值越高越先被调用
     */
    private int weight;

    /**
     * 注册时间
     */
    private long registerdTime;

    /**
     * 通信协议
     */
    private String callProtocol;

    /**
     *  状态值：0: 在线， 1：下线，未确认. 2:下线，已确认失效.
     */
    private int status;

    /**
     * 上一次心跳时间
     */
    private long lastHeartBeat;

    /**
     * 通信用socketChannel
     */
    private AsynchronousSocketChannel socketChannel;

}
